package org.shoukaiseki.common.logger;


import java.util.function.Supplier;

/**
 * 使用lambda 无法定位日志输出的所在行
 */
@Deprecated
public interface Logger {

    String ROOT_LOGGER_NAME = "ROOT";

    String getName();

    void trace(String var1);

    void trace(String var1, Object... var2);

    void trace(String var1, Throwable var2);


    void debug(String var1);

    void debug(String var1, Object... var2);

    void debug(String var1, Throwable var2);


    void info(String var1);

    void info(String var1, Object... var2);

    void info(String var1, Throwable var2);

    void warn(String var1);

    void warn(String var1, Object var2);

    void warn(String var1, Object... var2);

    void warn(String var1, Throwable var2);


    void error(String var1);

    void error(String var1, Object var2);

    void error(String var1, Object... var2);

    void error(String var1, Throwable var2);


    void debugLambar(LoggerLambda loggerLambda);

    void errorLambar(LoggerLambda loggerLambda);

    void infoLambar(LoggerLambda loggerLambda);

    void warnLambar(LoggerLambda loggerLambda);

    void debugLambar(Supplier<String> messageSupplier);

    void errorLambar(Supplier<String> messageSupplier);

    void infoLambar(Supplier<String> messageSupplier);

    void warnLambar(Supplier<String> messageSupplier);

    @Deprecated
    void debugLambar(Runnable runnable);

    @Deprecated
    void errorLambar(Runnable runnable);

    @Deprecated
    void infoLambar(Runnable runnable);

    @Deprecated
    void warnLambar(Runnable runnable);

    boolean isErrorEnabled();

    boolean isInfoEnabled();

    boolean isWarnEnabled();

    boolean isDebugEnabled();
}
